using System;
using System.Collections.Generic;
using System.Text;
using Com.AlbLab.GEP.Domain.Entities;
using Com.AlbLab.GEP.Domain.Entities.NonStandard;

namespace Com.AlbLab.GEP.Domain.Entities.NonStandard
{
    public class PNS_AP0_Accettazione_preposato : BASE_PraticaNonStandard
    {

        GEP_DATI_NOSTD _PraticaDB;

        public PNS_AP0_Accettazione_preposato(System.Data.DataColumnCollection cols, System.Data.DataRow dr)
            : base(cols, dr)
        {
            Standard = false;
            this.ListaControlliValori.Add(new string[] { Col_progressivo, "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { Col_codice_servizio, "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { Col_codice_flusso, "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { Col_pariva_grossista, "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { Col_codice_pod, "1", "CheckNotEmptyEPOD", "codice POD", null, null, null });
            this.ListaControlliValori.Add(new string[] { Col_nome_cliente, "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { Col_codfis_cliente, "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { Col_pariva_cliente, "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { Col_telefono_cliente, "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { Col_presenza_cliente_finale, "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { Col_tipologia_connessione, "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { Col_indirizzo_fornitura, "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { Col_data_arrivo_pratica, "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { Col_da_eseguire_non_prima_del, "1", "CheckNotEmpty", "da eseguire non prima del", null, null, null });
            this.ListaControlliValori.Add(new string[] { Col_data_fine_fornitura, "1", "CheckNotEmpty", "data fine fornitura", null, null, null });
            this.ListaControlliValori.Add(new string[] { Col_potenza_contrattuale_richiesta, "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { Col_potenza_tollerata_richiesta, "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { Col_fasi_richieste, "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { Col_tensioni_richieste, "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { Col_Uso_richiesto, "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { Col_preventivo, "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { Col_pratica_riferimento, "1", "CheckNotEmpty", "codice pratica riferimento", null, null, null });
            this.ListaControlliValori.Add(new string[] { Col_note, "0", null, null, null, null, null });
        }

        public override string CodiceServizio
        {
            get { return "AP0"; }
        }

        public override string DescrizioneServizio
        {
            get { return "Accettazione preposato"; }
        }

        public override string CodicePOD
        {
            get { return _PraticaDB.Gep_testata.Tes_Pod; }
        }
        
        public override String Cod_Contr_disp
        {
            get { return _PraticaDB.Gep_testata.Tes_Cod_Contr_Disp; }
        }

        public override string Cfis_Cliente
        {
            get { return _PraticaDB.Gep_testata.Tes_Codfis_Cli; }
        }

        public override string Piva_Cliente
        {
            get { return _PraticaDB.Gep_testata.Tes_Pariva_Cli; }
        }

        public override string Piva_Utente
        {
            get
            {
                string cRtnValue;

                if (!IsErrore) { cRtnValue = _PraticaDB.Gep_testata.Tes_Pariva_Cli; }
                else { cRtnValue = (string)RecordRaw["piva"]; }
                return cRtnValue;
            }
        }

        public override string Piva_Distributore
        {
            get { return _PraticaDB.Gep_testata.Tes_Piva_Distributore; }
        }

        public override string Cod_Prat_Utente
        {
            get { return _PraticaDB.Gep_testata.Tes_Cod_Prat_Utente; }
        }

        public override string Cod_Prat_distributore
        {

            get
            {
                string cRtnValue;
                if (!IsErrore) { cRtnValue = _PraticaDB.Gep_testata.Id_tes_cod_pratica.ToString(); }
                else { cRtnValue = ""; }
                return cRtnValue;
            }
        }

        public override void CaricaPraticaDB()
        {

        }

        public override void SalvaPraticaDB()
        {
            _PraticaDB = new GEP_DATI_NOSTD(1);
            _PraticaDB.Gep_testata.Tes_Pod = (string)RecordRaw[Col_codice_pod];
            _PraticaDB.NST_non_eseguire_prima = Convert.ToDateTime(RecordRaw[Col_da_eseguire_non_prima_del]);
            _PraticaDB.NST_data_fine_forn = Convert.ToDateTime(RecordRaw[Col_data_fine_fornitura]);
            _PraticaDB.Nst_Nro_Pra_Rif = String.Format("{0}", RecordRaw[Col_pratica_riferimento]);
        }

        public override object RecordDB
        {
            get { return _PraticaDB; }
            set { _PraticaDB = (GEP_DATI_NOSTD)value; }
        }

    }
}
